#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
pair<int,int> tp[11];
bool cmp(pair<int,int> a,pair<int,int> b){  
    return a.second > b.second;  
}
int Yue(int a,int b){
    return b?(Yue(b,a%b)):a;
}  
int main(){
	int cnt,n,flag;
	scanf("%d",&cnt);
	while(cnt--){
		flag=0;
		scanf("%d",&n);
		for(int i=0;i<n;i++) scanf("%d",&tp[i].first);
		for(int i=0;i<n;i++) scanf("%d",&tp[i].second);
		sort(tp,tp+n,cmp);
		for(int i=0;i<n;i++){
			int up=tp[i].first;
			int low=tp[i].second;
			low++;
			if(up==0) continue;
			if(up>0&&flag!=0){
				printf("+");
			}
			flag=1;
			if(up<0){
				printf("-");
				up=-up;
			}
			if(up%low==0) if(up==low) printf(""); else printf("%d",up/low);
			else{
				int temp=Yue(up,low);
				printf("%d/%d",up/temp,low/temp);
			}
			if(low>1) printf("x^%d",low);
			else if(low==1) printf("x");
		}
		printf("\n");
	}
}